home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
PC World Interactive 7
/
PC World Interactive 7.iso
/
program
/
pasprog.EXE
/
EXEWRITE.TXT
< prev
next >
Wrap
Text File
|
1995-12-06
|
2KB
|
32 lines
┌──────────────────────────────────────────────────────────────────────────┐
│┌────────────────────────────────────────────────────────────────────────┐│
││ ││
││ Kaplumbaºa EXE'ler ││
││ ││
│└────────────────────────────────────────────────────────────────────────┘│
│ PS 28 · Kasìm'95 A.Serdar Hazar │
└──────────────────────────────────────────────────────────────────────────┘
Kendi yazdìºìnìz programlarìn ayarlarìnì baƒka bir dosyada (örneºin
Ayarlar.Cfg gibi) saklamak yerine .EXE dosyanìn içinde saklayabilirsiniz.
Veya .EXE'nin sonuna küçük notlar ekleyebilirsiniz. Exe dosyalarda bulunan
header'da dosyanìn belleºe yüklenecek uzunluºu bulunmaktadìr. Bu nedenle
dosyaya ekleyeceºimiz veri belleºe yüklenmez ve hiç bir soruna yol açmaz.
Dosya Pklite ile sìkìƒtìrìlsa bile program iƒlevini gerçekleƒtiriyor.
Ancak LzExe 'de bazì sorunlar çìktìºìnì itiraf etmeliyim. Bu EXE'nin sonuna
eklediºimiz String, Overlay gibi görünüyor. Pklite bunu aynen sakladìºì
halde, LzExe bu Overlay kìsmì, kesip atìyor.
Program ilk önce, EXE dosyanìn Header'ìna bakarak, dosyanìn olmasì
gereken boyunu öºreniyor. EXE Dosyanìn gerçek boyu = 2.Word+((3.Word-1)*512)
ƒeklinde küçük bir hesap yapìlarak bulunur. Daha sonra FileSize komutu ile
dosyanìn gerçek boyunu buluyor. ÿkisi de aynì ise "Henüz bir ƒey
yazìlmamìƒ" mesajìnì ekrana getiriyor ve dosyanìn sonuna eklenecek olan
mesajì soruyor. Sonuçlar farklì ise dosyanìn sonundaki mesajì ekrana yazìyor
ve yeni mesajìn girilmesini istiyor. Eºer hiçbirƒey yazìlmayìp, Enter'e
basìlìrsa, dosyayì ilk (normal) haline getiriyor. (Truncate(dosya);)
Hiç birƒey yazìlmayìp, Enter'e basìlìnca dosyanìn sonundaki mesajìn aynì
kalmasìnì istiyorsanìz, {*} ile iƒaretli satìrlarì;
for i:=1 to length(mes) do buf[i]:=ord(mes[i]);
satìrìnìn altìna yazmanìz gerekiyor.